-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
proposal(ir): state based implementation #972
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Keming <[email protected]>
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: kemingy The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
How to merge different different stages like llb.Merge? Also I think bramble's syntax can be an option |
Will add
Will take a look. |
I think we should have an idea about what the llb graph will look like after more dependency is set by the user (such as gcc and pypi packages), that can also utilize caches as much as possible.
|
I think bramble's example there looks complex. It declares the input arguments explicitly. Personally, I prefer the func chain. |
Agree. What we have now should be simple. Others like parallelism should be possible. Method chaining should be enough for sequence commands. Each function should return a |
Signed-off-by: Keming <[email protected]>
Some questions:
|
Signed-off-by: Keming <[email protected]>
I think it's hard. (correct me if I'm wrong) Starlark doesn't support operator overloading like Besides, we need explicitly use
Some ideas:
|
Then could the new language syntax be compatible with the existing design? Or is it a total breaking change? BTW, could you please provide the example for |
Signed-off-by: Keming <[email protected]>
Signed-off-by: Keming <[email protected]>
I think it will be a breaking change.
Already been added to the proposal. PTAL. |
@VoVAllen WDYT I have no opinion on it, let's start researching if starlark supports it. |
I'm a bit concerned about the current proposal. The current design is detail-oriented, which is more complicated than original design. Some personal thoughts: The difference between them is:
Other ideas: All functions provided by envd can add a new argument, such as called In user stages user can do:
and to define it as a custom function:
To use
WDYT |
This is similar to the current implementation and this proposal. We do have different stages, it's just not explicit. We can provide the
Defining the dependencies with an extra state argument is acceptable but not very user-friendly. The LLB-like syntax is only complex when you need to use |
Signed-off-by: Keming <[email protected]>
One more thing, this is incompatible with |
Signed-off-by: Keming [email protected]